package cn.hrbnu.service.impl;

import cn.hrbnu.service.UploadService;
import cn.hrbnu.util.QiniuUtils;
import cn.hrbnu.util.ResponseResult;
import org.springframework.stereotype.Service;
import org.springframework.web.multipart.MultipartFile;

import java.io.IOException;
import java.util.UUID;

/**
 * @author zhangyadong
 * @version 1.0
 * &#064;ClassName  UploadServiceImpl
 * &#064;date  2025-06-16 17:03
 */

@Service
public class UploadServiceImpl implements UploadService {


    /**
     * 上传图片到七牛云存储
     *
     * @param img 要上传的图片文件
     * @return 返回上传后的图片URL
     */
    @Override
    public ResponseResult<Object> upload(MultipartFile img) {
        // 获取原始文件名
        String originalFilename = img.getOriginalFilename();
        // 生成唯一后缀名，避免文件名重复
        String uuid = UUID.randomUUID().toString().replaceAll("-", "");
        // 获取文件名中的最后一个点的位置，用于截取文件类型
        int index = 0;
        if (originalFilename != null) {
            index = originalFilename.lastIndexOf(".");
        }
        // 截取文件类型，例如.jpg
        String fileType = null;
        if (originalFilename != null) {
            fileType = originalFilename.substring(index);
        }
        // 组合生成的新文件名
        String newFileName = uuid + fileType;

        try {
            // 调用七牛云存储工具类上传图片
            QiniuUtils.upload(img.getBytes(), newFileName);
        } catch (IOException e) {
            // 打印异常信息，实际项目中应根据具体需求处理异常
            e.printStackTrace();
        }
        // 返回上传后的图片URL
        return new ResponseResult<>().okResult("http://732.s3.cn-south-1.qiniucs.com/" + newFileName);
    }
}